13 Objetos, Im�genes y Aplicaciones

Nota: Este documento es parte de una traducci�n al castellano de la Recomendaci�n del W3C "HTML 4.01 Specification" (m�s informaci�n). Puede consultar la versi�n original del mismo. Para cualquier comentario o correcci�n acerca de la traducci�n p�ngase en contacto con el traductor en jrpozo arroba conclase punto net. Gracias por su colaboraci�n.

V�ase el Aviso de copyright de la traducci�n.

Contenidos

  1. Introducci�n a los objetos, im�genes y aplicaciones
  2. Incluir una imagen: el elemento IMG
  3. Inclusi�n gen�rica: el elemento OBJECT
    1. Reglas para representar objetos
    2. Inicializaci�n de objetos: el elemento PARAM
    3. Esquemas globales de nombres para objetos
    4. Declaraci�n y creaci�n de un objeto
  4. Incluir un applet: el elemento APPLET
  5. Notas sobre la inclusi�n de documentos
  6. Mapas de im�genes
    1. Mapas de im�genes en el lado del cliente: los elementos MAP y AREA
    2. Mapas de im�genes en el lado del servidor
  7. Presentaci�n visual de im�genes, objetos y aplicaciones
    1. Anchura y altura
    2. Espacio en blanco alrededor de im�genes y objetos
    3. Bordes
    4. Alineaci�n
  8. C�mo especificar texto alternativo

13.1 Introducci�n a los objetos, im�genes y aplicaciones

Las caracter�sticas multimedia de HTML permiten a los autores incluir en sus p�ginas im�genes, aplicaciones (programas que se descargan autom�ticamente y se ejecutan en la m�quina del usuario), videoclips, y otros documentos HTML en sus p�ginas.

Por ejemplo, para incluir una imagen PNG en un documento, los autores pueden escribir:

<BODY>
<P>Aqu� tienen un primer plano del Gran Ca��n:
<OBJECT data="canyon.png" type="image/png">
Esto es un <EM>primer plano</EM> del Gran Ca��n.
</OBJECT>
</BODY>

Las versiones anteriores de HTML permit�an a los autores incluir im�genes (por medio de IMG) y aplicaciones (por medio de APPLET). Estos elementos tienen varias limitaciones:

Para solucionar estos problemas, HTML 4 introduce el elemento OBJECT, que ofrece una soluci�n universal para la inclusi�n de objetos gen�ricos. El elemento OBJECT permite a los autores HTML especificar todo lo que necesita un agente de usuario para la representaci�n de un objeto: c�digo fuente, valores iniciales, y datos en tiempo de ejecuci�n. En esta especificaci�n, el t�rmino "objeto" se utiliza para describir las cosas que la gente quiere colocar en los documentos HTML; otros t�rminos usados habitualmente son: applets, plug-ins, controladores de medios, etc.

El nuevo elemento OBJECT asume as� algunas de las tareas realizadas por los elementos existentes. Consid�rese la siguiente tabla de funcionalidades:

Tipo de inclusi�n Elemento espec�fico Elemento gen�rico
Imagen IMG OBJECT
Aplicaci�n APPLET (Desaprobado) OBJECT
Otro documento HTML IFRAME OBJECT

La tabla indica que cada tipo de inclusi�n tiene una soluci�n espec�fica y una general. El elemento gen�rico OBJECT servir� como soluci�n de implementaci�n de los tipos de medios futuros.

Para incluir im�genes, los autores pueden usar el elemento OBJECT o el elemento IMG.

Para incluir aplicaciones, los autores deber�an usar el elemento OBJECT ya que el elemento APPLET est� desaprobado.

Para incluir un documento HTML en otros, los autores pueden usar o bien el nuevo elemento IFRAME o bien el elemento OBJECT. En ambos casos, el documento incluido sigue siendo independiente del documento principal. Los agentes de usuario visuales pueden presentar el documento incluido en una ventana diferenciada del documento principal. Consulte las notas sobre documentos incluidos para una comparaci�n entre OBJECT e IFRAME en lo que a inclusi�n de documentos se refiere.

Las im�genes y otros objetos incluidos pueden tener hiperv�nculos asociados a ellos, tanto a trav�s de los mecanismos de vinculaci�n est�ndar, como tambi�n a trav�s de mapas de im�genes. Un mapa de im�genes especifica las regiones geom�tricas activas de un objeto incluido, y asigna un v�nculo a cada regi�n. Cuando se activan, estos v�nculos pueden hacer que se abra un documento, que se ejecute un programa en el servidor, etc.

En las secciones siguientes, hablamos sobre los distintos mecanismos que est�n a disposici�n de los autores para inclusiones multimedia y para crear mapas de im�genes de dichas inclusiones.

13.2 Incluir una imagen: el elemento IMG

<!-- Para evitar problemas con AAUU de s�lo texto as�
   como para hacer el contenido de las im�genes inteligibles
   y navegables para los usuarios de AAUU no visuales, es
   necesario proporcionar una descripci�n con ALT, y evitar
   mapas de im�genes en el lado del servidor -->
<!ELEMENT IMG - O EMPTY                -- Imagen incluida -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #REQUIRED -- URI de la imagen a incluir --
  alt         %Text;         #REQUIRED -- descripci�n corta --
  longdesc    %URI;          #IMPLIED  -- v�nculo a descripci�n larga
                                          (complementa a alt) --
  name        CDATA          #IMPLIED  -- nombre de la imagen para los scripts --
  height      %Length;       #IMPLIED  -- especificar nueva altura --
  width       %Length;       #IMPLIED  -- especificar nueva anchura --
  usemap      %URI;          #IMPLIED  -- usar mapa de im�genes en el cliente --
  ismap       (ismap)        #IMPLIED  -- usar mapa de im�genes en el servidor --
  >

Etiqueta inicial: obligatoria, Etiqueta final: prohibida

Definiciones de atributos

src = uri [CT]
Este atributo especifica la localizaci�n del recurso de imagen. Ejemplos de formatos de imagen ampliamente reconocidos son GIF, JPEG y PNG.
longdesc = uri [CT]
Este atributo especifica un v�nculo a una descripci�n larga de la imagen. Esta descripci�n deber�a ser un complemento de la descripci�n corta proporcionada mediante al atributo alt. Cuando la imagen tenga asociado un mapa de im�genes, este atributo deber�a proporcionar informaci�n sobre los contenidos del mapa de im�genes. Esto es particularmente importante para mapas de im�genes en el lado del servidor. Como un elemento IMG puede estar dentro del contenido de un elemento A, el mecanismo de la interfaz del usuario del agente de usuario para acceder al recurso "longdesc" de aqu�l debe ser diferente del mecanismo para acceder al recurso href de �ste.
name = cdata [CI]
Este atributo asigna un nombre al elemento de modo que se pueda hacer referencia a �l desde hojas de estilo o scripts. Nota. Este atributo ha sido incluido por motivos de compatibilidad con versiones anteriores. Las aplicaciones deber�an usar el atributo id para identificar a los elementos.

Atributos definidos en otros lugares

El elemento IMG incluye una imagen en el documento actual en la posici�n de la definici�n del elemento. El elemento IMG no tiene contenido; normalmente se reemplaza en l�nea por la imagen designada por el atributo src, con la �nica excepci�n de las im�genes alineadas a la izquierda o a la derecha y que est�n "flotando" fuera de l�nea.

En un ejemplo anterior, definimos un v�nculo a una fotograf�a de familia. Aqu�, insertamos la foto directamente en el documento actual:

<BODY>
<P>�Acabo de volver de mis vacaciones! Aqu� os pongo
   una foto de mi familia en el lago:
<IMG src="http://www.algunsitio.com/Gente/Juan/vacaciones/familia.png"
     alt="Una foto de mi familia en el lago.">
</BODY>

Esta inclusi�n tambi�n puede realizarse con el elemento OBJECT como sigue:

<BODY>
<P>�Acabo de volver de mis vacaciones! Aqu� os pongo una foto
   de mi familia en el lago:
<OBJECT data="http://www.algunsitio.com/Gente/Juan/vacaciones/familia.png"
        type="image/png">
Una foto de mi familia en el lago.
</OBJECT>
</BODY>

El atributo alt especifica un texto alternativo que se representa cuando la imagen no puede ser mostrada (ver abajo para m�s informaci�n sobre c�mo especificar texto alternativo). Los agentes de usuario deben representar el texto alternativo cuando no puedan soportar im�genes, cuando no puedan soportar un tipo de im�genes, o cuando est�n configurados para no mostrar im�genes.

El siguiente ejemplo muestra c�mo puede utilizarse el atributo longdesc para una descripci�n m�s rica:

<BODY>
<P>
<IMG src="mapadelsitio.gif"
     alt="Mapa del Sitio de Laboratorios HP"
     longdesc="mapadelsitio.html">
</BODY>

El atributo alt proporciona una descripci�n corta de la imagen. Esta informaci�n deber�a ser suficiente como para que los usuarios puedan decidir si quieren seguir el v�nculo dado por el atributo longdesc hacia la descripci�n m�s larga, en este caso "mapadelsitio.html".

Consulte la secci�n sobre la presentaci�n visual de objetos, im�genes y aplicaciones para informaci�n sobre tama�o de la imagen, alineaci�n y bordes.

13.3 Inclusi�n gen�rica: el elemento OBJECT

<!ELEMENT OBJECT - - (PARAM | %flow;)*
 -- objeto gen�rico incluido -->
<!ATTLIST OBJECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  declare     (declare)      #IMPLIED  -- declarar pero no crear --
  classid     %URI;          #IMPLIED  -- identifica una implementaci�n --
  codebase    %URI;          #IMPLIED  -- URI base para classid, data, archive--
  data        %URI;          #IMPLIED  -- referencia a los datos del objeto --
  type        %ContentType;  #IMPLIED  -- tipo de contenido de los datos --
  codetype    %ContentType;  #IMPLIED  -- tipo de contenido del c�digo --
  archive     CDATA          #IMPLIED  -- lista de URIs separados por espacios --
  standby     %Text;         #IMPLIED  -- mensaje a mostrar mientras se carga --
  height      %Length;       #IMPLIED  -- especificar nueva altura --
  width       %Length;       #IMPLIED  -- especificar nueva anchura --
  usemap      %URI;          #IMPLIED  -- usar mapa de im�genes en el cliente --
  name        CDATA          #IMPLIED  -- enviar como parte de un formulario --
  tabindex    NUMBER         #IMPLIED  -- posici�n en el orden de tabulaci�n --
  >

Etiqueta inicial: obligatoria, Etiqueta final: obligatoria

Definiciones de atributos

classid = uri [CT]
Este atributo puede utilizarse para especificar la localizaci�n de la implementaci�n de un objeto mediante un URI. Puede usarse junto con, o como alternativa al atributo data, dependiendo del tipo de objeto involucrado.
codebase = uri [CT]
Este atributo especifica la ruta de acceso base (base path) utilizado para completar los URIs relativos especificados por los atributos classid, data y archive. Si est� ausente, su valor por defecto es el URI base del documento actual.
codetype = tipo de contenido [CI]
Este atributo especifica el tipo esperado de contenido de datos cuando se carga el objeto especificado por classid. Este atributo es opcional pero se recomienda cuando se especifica classid ya que permite que el agente de usuario evite la carga de informaci�n de tipos de contenido que no soporta. Cuando est� ausente, su valor por defecto es el valor del atributo type.
data = uri [CT]
Este atributo puede utilizarse para especificar la localizaci�n de los datos del objeto, por ejemplo datos de im�genes para objetos que definen im�genes, o m�s en general, una forma serializada de un objeto que puede usarse para recrearlo. Si se da como URI relativo, deber�a interpretarse relativamente al atributo codebase.
type = tipo de contenido [CI]
Este atributo especifica el tipo de contenido de los datos especificados por data. Este atributo es opcional, pero se recomienda incluirlo cuando se especifica data, ya que permite que el agente de usuario no cargue informaci�n de tipos de contenido que no soporta. Si el valor de este atributo es diferente del "Content-Type" HTTP devuelto por el servidor cuando se obtiene el objeto, el "Content-Type" HTTP tiene preferencia.
archive = lista de uris [CT]
Este atributo puede utilizarse para especificar una lista de URIs separados por espacios de archivos que contienen recursos relevantes para el objeto, los cuales pueden incluir los recursos especificados por los atributos classid y data. La precarga de archivos resultar� generalmente en tiempos menores de descarga para los objetos. Los archivos especificados como URIs relativos deber�an interpretarse relativamente al atributo codebase.
declare [CI]
Cuando est� presente, este atributo booleano hace que la definici�n actual de OBJECT sea solamente una declaraci�n. El objeto debe ser creado por una definici�n OBJECT subsiguiente referida a esta declaraci�n.
standby = texto [CS]
Este atributo especifica un mensaje que puede presentar un agente de usuario mientras carga la implementaci�n y los datos del objeto.

Atributos definidos en otros lugares

La mayor�a de los agentes de usuario tienen mecanismos integrados para representar tipos de datos comunes como texto, im�genes GIF, colores, fuentes, y un pu�ado de elementos gr�ficos. Para representar tipos de datos para los cuales no tienen soporte nativo, los agentes de usuario suelen ejecutar aplicaciones externas. El elemento OBJECT permite a los autores controlar si los datos deber�an ser representados externamente por alg�n programa, especificado por el autor, que represente los datos dentro del agente de usuario.

En el caso m�s general, puede ser necesario que el autor tenga que especificar tres tipos de informaci�n:

El elemento OBJECT permite a los autores especificar estos tres tipos de datos, pero los autores no tienen que especificar necesariamente los tres a la vez. Por ejemplo, algunos objetos pueden no necesitar datos (p.ej., una aplicaci�n aut�noma que realice una peque�a animaci�n). Otros pueden no necesitar una inicializaci�n en tiempo de ejecuci�n. Y otros pueden no necesitar informaci�n adicional sobre la implementaci�n, es decir, el propio agente de usuario puede ya saber c�mo representar ese tipo de datos (p.ej., im�genes GIF).

Los autores especifican la implementaci�n de un objeto y la localizaci�n de los datos a representar por medio del objeto OBJECT. Sin embargo, para especificar valores en tiempo de ejecuci�n, los autores usan el elemento PARAM, del cual se habla en la secci�n sobre inicializaci�n de objetos.

El elemento OBJECT tambi�n puede aparecer en el contenido del elemento HEAD. Ya que los agentes de usuario en general no representan los elementos del HEAD, los autores deber�an asegurarse de que los elementos OBJECT en el HEAD no especifiquen contenido que pueda ser representado. Consulte la secci�n sobre compartir datos de un marco para un ejemplo de inclusi�n del elemento OBJECT en el elemento HEAD.

Consulte la secci�n sobre controles de formulario para informaci�n sobre elementos OBJECT en formularios.

Este documento no especifica el comportamiento de elementos OBJECT que usen tanto el atributo classid para identificar una implementaci�n como el atributo data para especificar los datos para esa implementaci�n. Para asegurar la portabilidad, los autores deber�an usar el elemento PARAM para decir a las implementaciones d�nde obtener los datos adicionales.

13.3.1 Reglas para representar objetos

Un agente de usuario debe interpretar un elemento OBJECT de acuerdo con las siguientes reglas de precedencia:

  1. El agente de usuario debe intentar en primer lugar representar el objeto. No deber�a representar los contenidos del elemento, pero debe examinarlos por si el elemento contiene hijos directos que sean elementos PARAM (ver inicializaci�n de objetos) o elementos MAP (ver mapas de im�genes en el lado del cliente).
  2. Si por cualquier raz�n el agente de usuario no es capaz de representar el objeto (no est� configurado para ello, no hay suficientes recursos, la arquitectura no es la adecuada, etc.), debe intentar representar sus contenidos.

Los autores no deber�an incluir contenido en los elementos OBJECT que aparezcan en el elemento HEAD.

En el siguiente ejemplo, insertamos una aplicaci�n de reloj anal�gico en un documento por medio del elemento OBJECT. La aplicaci�n, escrita en el lenguaje Python, no necesita datos adicionales ni valores en tiempo de ejecuci�n. El atributo classid especifica la localizaci�n de la aplicaci�n:

    
<P><OBJECT classid="http://www.miamachina.it/relojanalogico.py">
</OBJECT>

Obs�rvese que el reloj ser� representado tan pronto como el agente de usuario represente esta declaraci�n OBJECT. Es posible retrasar la representaci�n del objeto declarando el objeto en primer lugar (seg�n se describe m�s abajo).

Los autores deber�an completar esta declaraci�n con un texto alternativo como contenido de OBJECT por si el agente de usuario no puede representar el reloj.

    
<P><OBJECT classid="http://www.miamachina.it/relojanalogico.py">
Un reloj animado.
</OBJECT>

Una consecuencia significativa del dise�o del elemento OBJECT es que ofrece un mecanismo para especificar representaciones alternativas del objeto; cada declaraci�n OBJECT anidada puede especificar tipos de contenido alternativos. Si un agente de usuario no puede representar el primer OBJECT, intenta representar los contenidos, que a su vez pueden ser otro elemento OBJECT, etc.

En el siguiente ejemplo, anidamos varias declaraciones OBJECT para ilustrar el funcionamiento de las representaciones alternativas. Un agente de usuario intentar� representar el primer elemento OBJECT que pueda, en el orden siguiente: (1) una aplicaci�n LaTierra escrita en el lenguaje Python, (2) una animaci�n MPEG de la Tierra, (3) una imagen GIF de la Tierra, (4) texto alternativo.

<P>                 <!-- Primero, intentarlo con la aplicaci�n Python -->
<OBJECT title="La Tierra vista desde el espacio" 
        classid="http://www.observer.mars/LaTierra.py">
                    <!-- Si no, intentarlo con el v�deo MPEG -->
  <OBJECT data="LaTierra.mpeg" type="application/mpeg">
                    <!-- Si no, intentarlo con la imagen GIF -->
    <OBJECT data="LaTierra.gif" type="image/gif">
                    <!-- Si no, representar el texto -->
     <STRONG>La Tierra</STRONG> vista desde el espacio.
    </OBJECT>
  </OBJECT>
</OBJECT>

La declaraci�n m�s externa especifica una aplicaci�n que no necesita datos ni valores iniciales. La segunda declaraci�n especifica una animaci�n MPEG, y como no define la localizaci�n de ninguna implementaci�n que procese MPEG, depende de que el agente de usuario represente la animaci�n. Tambi�n establecemos el atributo type para que los agentes de usuario que sepan que no pueden procesar MPEG no se molesten en obtener "LaTierra.mpeg" de la red. La tercera declaraci�n especifica la localizaci�n de un fichero GIF y proporciona un texto alternativo por si todos los mecanismos anteriores fallaran.

Datos en l�nea frente a datos externos. Los datos a representar pueden proporcionarse de dos maneras: en l�nea y desde un recurso externo. Si bien el primer m�todo resultar� generalmente en una representaci�n m�s r�pida, no es conveniente cuando se representan grandes cantidades de datos.

Aqu� tenemos un ejemplo que ilustra c�mo se puede servir a un elemento OBJECT datos en l�nea:

<P>
<OBJECT id="reloj1"
        classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502"
        data="data:application/x-oleobject;base64, ...datos en base64...">
    Un reloj.
</OBJECT>

Consulte la secci�n sobre la representaci�n visual de objetos, im�genes y aplicaciones para informaci�n sobre tama�o de objetos, alineaci�n y bordes.

13.3.2 Inicializaci�n de objetos: el elemento PARAM

<!ELEMENT PARAM - O EMPTY              -- valor de propiedad con nombre -->
<!ATTLIST PARAM
  id          ID             #IMPLIED  -- identificador �nico a nivel de documento --
  name        CDATA          #REQUIRED -- nombre de la propiedad --
  value       CDATA          #IMPLIED  -- valor de la propiedad --
  valuetype   (DATA|REF|OBJECT) DATA   -- c�mo interpretar el valor --
  type        %ContentType;  #IMPLIED  -- tipo de contenido para el valor
                                          cuando valuetype=ref --
  >

Etiqueta inicial: obligatoria, Etiqueta final: prohibida

Definiciones de atributos

name = cdata
Este atributo define el nombre de un par�metro de ejecuci�n, que se supone que el objeto insertado conoce. Dependiendo de la implementaci�n espec�fica del objeto, se distinguir� o no entre may�sculas y min�sculas.
value = cdata
Este atributo especifica el valor del par�metro de ejecuci�n especificado por name. Los valores de las propiedades no tienen significado para HTML; su significado lo determina el objeto en cuesti�n.
valuetype = data|ref|object [CI]
Este atributo especifica el tipo de atributo value. Valores posibles:
  • data: Este es el valor por defecto del atributo. Significa que el valor especificado por value se evaluar� y pasar� a la implementaci�n del objeto como una cadena.
  • ref: El valor especificado por value es un URI que designa un recurso donde se almacenan valores de tiempo de ejecuci�n. Esto permite a las herramientas del soporte identificar los URIs dados como par�metros. El URI debe pasarse al objeto tal y como est�, es decir, sin completar.
  • object: El valor especificado por value es un identificador que se refiere a una declaraci�n OBJECT del mismo documento. El identificador debe ser el valor del atributo id establecido para el objeto OBJECT declarado.
type = tipo de contenido [CI]
Este atributo especifica el tipo de contenido del recurso contenido por el atributo value s�lo en el caso en que valuetype sea igual a "ref". Este atributo especifica as� para el agente usuario el tipo de valores que encontrar� en el URI designado por value.

Atributos definidos en otros lugares

Los elementos PARAM especifican un conjunto de valores que pueden ser necesarios para un objeto en tiempo de ejecuci�n. Puede aparecer cualquier n�mero de elementos PARAM en el contenido de un elemento OBJECT o APPLET, y en cualquier orden, pero deben ser colocados al principio del contenido del elemento OBJECT o APPLET que los contienen.

Se supone que la sintaxis de nombres y valores es entendida por la implementaci�n del objeto. Este documento no especifica c�mo deber�an obtener los agentes de usuario los pares nombre/valor ni c�mo deber�an interpretar los nombres de par�metros que aparezcan dos veces.

Volvemos al ejemplo del reloj para ilustrar la utilizaci�n de PARAM: supongamos que la aplicaci�n es capaz de manejar dos par�metros de ejecuci�n que definen su altura y anchura iniciales. Podemos establecer las dimensiones iniciales en 40x40 p�xeles con dos elementos PARAM.

    
<P><OBJECT classid="http://www.miamachina.it/relojanalogico.py">
<PARAM name="altura" value="40" valuetype="data">
<PARAM name="anchura" value="40" valuetype="data">
Este agente de usuario no puede representar aplicaciones Python.
</OBJECT>

En el siguiente ejemplo, se especifican los datos de ejecuci�n para el par�metro "Valores_inic" del objeto como recurso externo (un fichero GIF). El valor del atributo valuetype se establece por tanto a "ref" y value es un URI que designa el recurso.

<P><OBJECT classid="http://www.gifstuff.com/aplicgif"
       standby="Cargando Elvis...">
<PARAM name="Valores_inic"
       value="./imagenes/elvis.gif">
       valuetype="ref">
</OBJECT>

Obs�rvese que tambi�n hemos establecido el atributo standby de modo que el agente de usuario pueda mostrar un mensaje mientras se carga el mecanismo de representaci�n.

Cuando representen un elemento OBJECT, los agentes de usuario s�lo deben buscar el contenido de aquellos elementos PARAM que sean hijos directos y d�rselos al OBJECT.

As�, en el ejemplo siguiente, si se representa "obj1", "param1" se aplica a "obj1" (y no a "obj2"). Si "obj1" no se representa y "obj2" s�, "param1" no se tiene en cuenta, y "param2" se aplica a "obj2". Si ninguno de los OBJECT se representa, ninguno de los PARAM se aplica.

<P>
<OBJECT id="obj1">
   <PARAM name="param1">
   <OBJECT id="obj2">
      <PARAM name="param2">
   </OBJECT>
</OBJECT>

13.3.3 Esquemas globales de nombres para objetos

La localizaci�n de la implementaci�n de un objeto viene dada por un URI. Como vimos en la introducci�n a los URIs, el primer segmento de un URI absoluto especifica el esquema de nombres usado para transferir los datos designados por el URI. Para documentos HTML, este esquema es normalmente "http". Algunas aplicaciones podr�an usar otros esquemas de nombres. Por ejemplo, cuando se especifica una aplicaci�n Java, los autores pueden usar URIs que comiencen con java, y para aplicaciones ActiveX, los autores pueden usar "clsid".

En el ejemplo siguiente, insertamos una aplicaci�n Java en un documento HTML.

<P><OBJECT classid="java:program.start">
</OBJECT>

Al establecer el atributo codetype, un agente de usuario puede decidir si obtener la aplicaci�n Java seg�n su capacidad de hacerlo.

<OBJECT codetype="application/java-archive"
        classid="java:program.start">
</OBJECT>

Algunos esquemas de representaci�n necesitan informaci�n adicional para identificar su implementaci�n, y hay que decirles d�nde encontrar esa informaci�n. Los autores pueden dar la informaci�n de la ruta de acceso a la implementaci�n del objeto a trav�s del atributo codebase.

<OBJECT codetype="application/java-archive"
        classid="java:program.start">
        codebase="http://bla.bla.com/java/miimplementacion/"
</OBJECT>

El siguiente ejemplo especifica (con el atributo classid) un objeto ActiveX a trav�s de un URI que comienza con el esquema de nombres "clsid". El atributo data localiza los datos a representar (otro reloj).

<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502"
        data="http://www.acme.com/ole/reloj.stm">
Esta aplicaci�n no est� soportada.
</OBJECT>

13.3.4 Declaraci�n y creaci�n de objetos

Los objetos precedentes s�lo ilustran definiciones de objetos aislados. Cuando un documento debe contener m�s de un ejemplar del mismo objeto, es posible separar la declaraci�n de un objeto de su creaci�n o creaciones. Esto tiene varias ventajas:

Para declarar un objeto de modo que no sea ejecutado cuando lo lea el agente de usuario, se establece el atributo booleano declare del elemento OBJECT. Al mismo tiempo, los autores deben identificar la declaraci�n estableciendo el atributo id del elemento OBJECT en un valor �nico. Las creaciones posteriores del objeto se referir�n a este identificador.

Un OBJECT declarado debe aparecer en un documento antes de la primera creaci�n de ese OBJECT.

Se crea un objeto definido con el atributo declare cada vez que un elemento que se refiera a ese objeto necesite que sea representado (p.ej., se activa un v�nculo que se refiere a �l, se activa un objeto que se refiere a �l, etc.).

En el siguiente ejemplo, declaramos un OBJECT y hacemos que se cree haciendo referencia a �l desde un v�nculo. As�, el objeto puede activarse haciendo clic en un texto resaltado, por ejemplo.

<P><OBJECT declare
        id="tierra.declaracion" 
        data="LaTierra.mpeg" 
        type="application/mpeg">
   <STRONG>La Tierra</STRONG> vista desde el espacio.
</OBJECT>
...m�s abajo en el documento...
<P>�Una preciosa <A href="#tierra.declaracion"> animaci�n de la Tierra!</A>

Otra manera de crear un objeto declarado de esta forma es:

<OBJECT data="#tierra.declaracion"></OBJECT>

El siguiente ejemplo ilustra c�mo especificar valores de ejecuci�n que son otros objetos. En este ejemplo, enviamos texto (concretamente un poema) a un hipot�tico mecanismo para ver poemas. El objeto reconoce un par�metro llamado "fuente" (por ejemplo para representar el poema con una cierta fuente). El valor de este par�metro es a su vez un objeto que inserta (pero que no representa) el objeto fuente. La relaci�n entre el objeto fuente y el objeto visor de poemas se consigue (1) asignando el id "tribuna" a la declaraci�n del objeto y (2) refiri�ndose a �l desde el elemento PARAM del objeto visor de poemas (con valuetype y value).

<P><OBJECT declare
     id="tribuna"
     type="application/x-webfont"
     data="tribuna.gif">
</OBJECT>
...ver el problema de KublaKhan.txt aqu�...
<P><OBJECT classid="http://bla.bla.com/visordepoemas" 
           data="KublaKhan.txt">
<PARAM name="fuente" valuetype="object" value="#tribuna">
<P>Te est�s perdiendo un visor de poemas realmente estupendo ...
</OBJECT>

Los agentes de usuario que no soporten el atributo declare deben representar los contenidos de la declaraci�n OBJECT.

13.4 Incluir un applet: el elemento APPLET

APPLET est� desaprobado (con todos sus atributos) en favor de OBJECT.

Ver el DTD Transicional para la definici�n formal.

Definiciones de atributos

codebase = uri [CT]
Este atributo especifica el URI base para el applet. Si este atributo no se especifica, entonces su valor por defecto es el mismo URI base que el del documento actual. Los valores de este atributo s�lo pueden referirse a subdirectorios del directorio que contiene al documento actual. Nota. Si bien la restricci�n a subdirectorios es una excepci�n a la pr�ctica habitual y a la especificaci�n HTML 3.2, el Grupo de Trabajo HTML ha decidido mantener esta restricci�n en esta versi�n de la especificaci�n por motivos de seguridad.
code = cdata [CS]
Este atributo especifica o bien el nombre del fichero class que contiene la subclase Applet compilada del applet, o bien la ruta para obtener la clase, incluyendo al propio fichero class. Se interpreta con respecto al URI base (codebase) del applet. Deben estar presentes o bien code o bien object.
name = cdata [CS]
Este atributo especifica un nombre para la instancia del applet, lo cual hace posible que los applets de la misma p�gina se encuentren (y se comuniquen) entre s�.
archive = lista de uris [CT]
Esta lista especifica una lista de URIs separados por comas de archivos que contienen clases y otros recursos que ser�n "precargados". Las clases se cargan usando una instancia de un AppletClassLoader con el codebase dado. Los URIs relativos se interpretan con respecto al URI base (codebase) del applet. La precarga de recursos puede mejorar significativamente el rendimiento de los applets.
object = cdata [CS]
Este atributo indica el nombre de un recurso que contiene un representaci�n serializada del estado de un applet. Se interpreta relativamente al URI base (codebase) del applet. Los datos serializados contienen el nombre de la clase del applet, pero no la implementaci�n. El nombre de la clase se utiliza para obtener la implementaci�n en un archivo o fichero class.

Cuando el applet es "deserializado", se invoca el m�todo start(), pero no el m�todo init(). Los atributos que eran v�lidos cuando el objeto original fue serializado no son restaurados. Cualquier atributo que se pase a esta instancia APPLET estar� a disposici�n del applet. Los autores deber�an usar esta caracter�stica con extrema cautela. Un applet deber�a ser detenido antes de ser serializado.

Deben estar presentes o bien code o bien object. Si se dan tanto code como object y proporcionan nombres de clases diferentes, se produce un error.

width = longitud [CI]
Este atributo especifica la anchura inicial del �rea de presentaci�n del applet (sin incluir las ventanas o cuadros de di�logo que cree el applet).
height = longitud [CI]
Este atributo especifica la altura inicial del �rea de presentaci�n del applet (sin incluir las ventanas o cuadros de di�logo que cree el applet).

Atributos definidos en otros lugares

Este elemento, admitido por todos los browsers con soporte Java, permite a los dise�adores incluir un applet Java en un documento HTML. Ha sido desaprobado en favor del elemento OBJECT.

El contenido de APPLET act�a como informaci�n alternativa para agentes de usuario que no soporten este elemento o que est�n configurados para no soportar applets. En cualquier otro caso los agentes de usuario deben ignorar el contenido.

EJEMPLO DESAPROBADO:
En el siguiente ejemplo, el elemento APPLET incluye un applet Java en el documento. Al no haberse suministrado un codebase, se supone que el applet est� en el mismo directorio que el documento actual.

<APPLET code="Burbujas.class" width="500" height="500">
Applet Java que dibuja burbujas animadas.
</APPLET>

Este ejemplo puede reformularse con OBJECT de esta forma:

<P><OBJECT codetype="application/java"
        classid="java:Burbujas.class"
        width="500" height="500">
Applet Java que dibuja burbujas animadas.
</OBJECT>

Se pueden proporcionar valores iniciales al applet por medio del elemento PARAM.

EJEMPLO DESAPROBADO:
El siguiente ejemplo de applet Java:

<APPLET code="AudioItem" width="15" height="15">
<PARAM name="snd" value="Hola.au|Bienvenido.au">
Applet Java que reproduce un sonido de bienvenida.
</APPLET>

puede reformularse de la siguiente manera con OBJECT:

<OBJECT codetype="application/java"
        classid="AudioItem" 
        width="15" height="15">
<PARAM name="snd" value="Hola.au|Bienvenido.au">
Applet Java que reproduce un sonido de bienvenida.
</OBJECT>

13.5 Notas sobre la inclusi�n de documentos

Algunas veces, m�s que crear un v�nculo a un documento, lo que quiere un autor es incluirlo directamente en un documento HTML principal. Para esto, los autores pueden usar o bien el elemento IFRAME o bien el elemento OBJECT, pero ambos elementos difieren en varios aspectos. No solamente tienen los dos elementos modelos de contenido diferentes, sino que el elemento IFRAME puede ser un marco destino (ve�se la secci�n sobre la especificaci�n de informaci�n sobre el marco destino para m�s detalles) y puede ser "seleccionado" por un agente de usuario dirigiendo a �l el foco para imprimir, ver el fuente HTML, etc. Los agentes de usuario pueden representar los marcos seleccionados de modo que se distingan de los marcos no seleccionados (p.ej., dibujando un borde alrededor del marco seleccionado).

Un documento incluido es completamente independiente del documento en el cual se incluye. Por ejemplo, los URIs relativos del documento incluido se completan de acuerdo con el URI base del documento incluido, no con el del documento principal. Un documento incluido s�lo se representa dentro de otro documento (p.ej., en una subventana); por lo dem�s sigue siendo independiente.

Por ejemplo, la l�nea siguiente incluye los contenidos de incluye_me.html en el lugar en que aparece la definici�n OBJECT.

...texto antes...
<OBJECT data="incluye_me.html">
Atenci�n: no se pudo incluir incluye_me.html.
</OBJECT>
...texto despu�s...

Recu�rdese que los contenidos de OBJECT s�lo deben ser representados si no se puede cargar el fichero especificado por el atributo data.

El comportamiento de un agente de usuario en los casos en que un fichero se incluye a s� mismo queda sin definir.

13.6 Mapas de im�genes

Los mapas de im�genes permiten a los autores especificar regiones en una imagen u objeto y asignar una acci�n espec�fica a cada regi�n (p.ej., abrir un documento, ejecutar un programa, etc.). Cuando la regi�n es activada por el usuario, se ejecuta la acci�n.

Un mapa de im�genes se crea asociando un objeto con una especificaci�n de las �reas geom�tricas sensibles del objeto.

Hay dos tipos de mapas de im�genes:

Se prefieren los mapas de im�genes en el cliente que los mapas de im�genes en el servidor por dos razones: son accesibles a las personas que utilizan agentes de usuario no gr�ficos y permiten saber en todo momento si el apuntador est� sobre una regi�n activa o no.

13.6.1 Mapas de im�genes en el lado del cliente: los elementos MAP y AREA

<!ELEMENT MAP - - ((%block;) | AREA)+ -- mapa de im�genes en el lado del cliente -->
<!ATTLIST MAP
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #REQUIRED -- como referencia para usemap --
  >

Etiqueta inicial: obligatoria, Etiqueta final: obligatoria

<!ELEMENT AREA - O EMPTY               -- �rea de un mapa de im�genes en el cliente-->
<!ATTLIST AREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  shape       %Shape;        rect      -- controla la interpretaci�n de las coords --
  coords      %Coords;       #IMPLIED  -- lista de longitudes separadas por comas --
  href        %URI;          #IMPLIED  -- URI del recurso vinculado --
  nohref      (nohref)       #IMPLIED  -- esta regi�n no tiene acci�n --
  alt         %Text;         #REQUIRED -- descripci�n corta --
  tabindex    NUMBER         #IMPLIED  -- posici�n en el orden de tabulaci�n --
  accesskey   %Character;    #IMPLIED  -- car�cter de la tecla de accesibilidad --
  onfocus     %Script;       #IMPLIED  -- el foco se dirigi� hacia el elemento --
  onblur      %Script;       #IMPLIED  -- el elemento perdi� el foco --
  >

Etiqueta inicial: obligatoria, Etiqueta final: prohibida

Definiciones de atributos de MAP

name = cdata [CI]
Este atributo asigna un nombre al mapa de im�genes definido por un elemento MAP.

Definiciones de atributos de AREA

shape = default|rect|circle|poly [CI]
Este tributo especifica la forma de una regi�n. Valores posibles:
  • default: Especifica la regi�n completa.
  • rect: Define una regi�n rectangular.
  • circle: Define una regi�n circular.
  • poly: Define una regi�n poligonal.
coords = coordenadas [CN]
Este atributo especifica la posici�n y la forma en la pantalla. El n�mero y orden de estos valores depende de la forma que est� siendo definida. Combinaciones posibles:
  • rect: x-izquierda, y-superior, x-derecha, y-inferior.
  • circle: x-centro, y-centro, radio. Nota. Cuando el valor del radio sea un valor porcentual, los agentes de usuario deber�an calcular el valor final del radio bas�ndose en la anchura y altura del objeto asociado. El radio deber�a ser el menor valor de los dos.
  • poly: x1, y1, x2, y2, ..., xN, yN. El primer par de coordenadas x, y deber�a ser igual al �ltimo para cerrar el pol�gono. Cuando estas coordendas no sean iguales, los agentes de usuario deber�an a�adir un par adicional de coordenadas para cerrar el pol�gono.

Las coordenadas son relativas a la esquina superior izquierda del objeto. Todos los valores son longitudes. Todos los valores van separados por comas.

N.T.: La especificaci�n no aclara si las coordenadas x,y se miden respecto al cero o al uno, es decir, si las coordenadas de la esquina superior izquierda son (0,0) o (1,1).

nohref [CI]
Si est� establecido, este atributo booleano especifica que una regi�n no tiene asociado ning�n v�nculo.

Atributo para asociar un mapa de im�genes con un elemento

usemap = uri [CT]
Este atributo asocia un mapa de im�genes con un elemento. El mapa de im�genes est� definido por un elemento MAP. El valor de usemap debe ser igual al valor del atributo name del elemento MAP asociado.

Atributos definidos en otros lugares

El elemento MAP especifica un mapa de im�genes en el lado del cliente (u otro mecanismo de navegaci�n) que puede ser asociado con otros elementos (IMG, OBJECT, o INPUT). Un mapa de im�genes se asocia a un elemento a trav�s del atributo usemap del elemento. El elemento MAP puede ser utilizado sin una imagen asociada por mecanismos generales de navegaci�n.

La presencia del atributo usemap en un elemento OBJECT implica que el objeto que incluye es una imagen. Adem�s, cuando el elemento OBJECT tenga asociado un mapa de im�genes en el lado del cliente, los agentes de usuario pueden permitir la interacci�n del usuario con el elemento OBJECT s�lo en lo que se refiere al mapa de im�genes en el lado del cliente. Esto permite a los agentes de usuario (tales como un navegador de audio o un robot) interactuar con el OBJECT sin tener que procesarlo; el agente de usuario puede incluso optar por no obtener (o procesar) el objeto. Cuando un OBJECT tenga asociado un mapa de im�genes, los autores no deber�an esperar que el objeto sea obtenido o procesado por todos los agentes de usuario.

El modelo de contenido del elemento MAP permite a los autores lo siguiente:

  1. Uno o m�s elementos AREA. Estos elementos no tienen contenido, sino que especifican las regiones geom�tricas del mapa de im�genes y los v�nculos asociados con cada regi�n. Obs�rvese que en general los agentes de usuario no representan los elementos AREA. Por tanto, los autores deben proporcionar texto alternativo para cada AREA con el atributo alt (ver abajo m�s informaci�n sobre c�mo especificar texto alternativo).
  2. Contenido en bloque. Este contenido deber�a incluir elementos A que especifiquen regiones geom�tricas del mapa de im�genes y el v�nculo asociado con cada regi�n. Obs�rvese que el agente de usuario deber�a representar el contenido en bloque del elemento MAP. Los autores deber�an usar este m�todo para crear documentos m�s accesibles.

Cuando un elemento MAP contenga contenido mixto (tanto elementos AREA como contenido en bloque), los agentes de usuario deber�an ignorar los elementos AREA.

Los autores deber�an especificar la geometr�a de un mapa de im�genes completamente con elementos AREA, o completamente con elementos A, o completamente con ambos si el contenido es mixto. Los autores pueden querer usar contenido mixto para que los agentes de usuario antiguos utilicen la geometr�a del mapa especificada por los elementos AREA y que los agentes de usuario modernos saquen partido de la riqueza del contenido en bloque.

Si dos o m�s regiones se superponen, tiene prioridad la regi�n definida por el elemento que aparece antes en el documento.

Los agentes de usuario y los autores deber�an ofrecer alternativas textuales a los mapas de im�genes gr�ficos para los casos en que los gr�ficos no est�n disponibles o en que el usuario no pueda acceder a ellos. Por ejemplo, los agentes de usuario pueden usar el texto alt para crear v�nculos textuales en lugar de un mapa de im�genes gr�fico. Estos v�nculos pueden ser activados de diferentes maneras (con el teclado, activaci�n por voz, etc.).

Nota. MAP no es compatible con los agentes de usuario HTML 2.0.

Ejemplos de mapas de im�genes en el lado del cliente 

En el ejemplo siguiente, creamos un mapa de im�genes en el lado del cliente para el elemento OBJECT. No queremos representar los contenidos del mapa de im�genes cuando se represente el OBJECT, as� que "ocultamos" el elemento MAP dentro del contenido del elemento OBJECT. En consecuencia, los contenidos del elemento MAP s�lo ser�n representados si el OBJECT no puede ser representado.

<HTML>
   <HEAD>
      <TITLE>�El sitio ch�vere!</TITLE>
   </HEAD>
   <BODY>
     <P><OBJECT data="barranav1.gif" type="image/gif" usemap="#map1">
     <MAP name="map1">
       <P>Navegar por este sitio:
       <A href="guia.html" shape="rect" coords="0,0,118,28">Acceder a la Gu�a</a> |
       <A href="atajo.html" shape="rect" coords="118,0,184,28">Ir</A> |
       <A href="buscar.html" shape="circle" coords="184,200,60">Buscar</A> |
       <A href="top10.html" shape="poly"
          coords="276,0,276,28,100,200,50,50,276,0">Top Ten</A>
     </MAP>
     </OBJECT>
   </BODY>
</HTML>

Podemos querer representar los contenidos del mapa de im�genes incluso si el agente de usuario puede representar el OBJECT. Por ejemplo, podemos querer asociar un mapa de im�genes con un elemento OBJECT e incluir una barra de navegaci�n textual en la parte inferior de la p�gina. Para ello, definimos el elemento MAP fuera del OBJECT:

<HTML>
   <HEAD>
      <TITLE>�El sitio ch�vere!</TITLE>
   </HEAD>
   <BODY>
     <P><OBJECT data="barranav1.gif" type="image/gif" usemap="#map1">
     </OBJECT>

     ...aqu� el resto de la p�gina...

     <MAP name="map1">
       <P>Navegar por este sitio:
       <A href="guia.html" shape="rect" coords="0,0,118,28">Acceder a la Gu�a</a> |
       <A href="atajo.html" shape="rect" coords="118,0,184,28">Ir</A> |
       <A href="busca.html" shape="circle" coords="184,200,60">Buscar</A> |
       <A href="top10.html" shape="poly"
          coords="276,0,276,28,100,200,50,50,276,0">Top Ten</A>
     </MAP>
   </BODY>
</HTML>

En el siguiente ejemplo, creamos un mapa de im�genes similar, esta vez utilizando el elemento AREA. Obs�rvese el uso del texto alt:

<P><OBJECT data="barranav1.gif" type="image/gif" usemap="#map1">
   <P>Esto es una barra de navegaci�n.
   </OBJECT>

<MAP name="map1">
 <AREA href="guia.html" 
       alt="Acceder a la Gu�a" 
       shape="rect" 
       coords="0,0,118,28">
 <AREA href="buscar.html" 
       alt="Buscar" 
       shape="rect" 
       coords="184,0,276,28">
 <AREA href="atajo.html" 
       alt="Ir" 
       shape="circle"
       coords="184,200,60">
 <AREA href="top10.html" 
       alt="Top Ten" 
       shape="poly" 
       coords="276,0,276,28,100,200,50,50,276,0">
</MAP>

Aqu� tenemos una versi�n similar usando el elemento IMG en lugar de OBJECT (con la misma declaraci�n MAP):

<P><IMG src="barranav1.gif" usemap="#map1" alt="barra de navegaci�n">

El siguiente ejemplo ilustra c�mo pueden compartirse los mapas de im�genes.

Los elementos OBJECT anidados son �tiles para proporcionar "redes de seguridad" en caso de que un agente de usuario no soporte ciertos formatos. Por ejemplo:

<P>
<OBJECT data="barranav.png" type="image/png">
  <OBJECT data="barranav.gif" type="image/gif">
    texto que describe la imagen...
  </OBJECT>
</OBJECT>

Si el agente de usuario no soporta el formato PNG, intenta representar la imagen GIF. Si no soporta GIF (es decir, es un agente de usuario por voz), utiliza la descripci�n textual proporcionada como contenido del elemento OBJECT interior. Cuando los elementos OBJECT se anidan de esta manera, los autores pueden compartir mapas de im�genes entre ellos:

<P>
<OBJECT data="barranav.png" type="image/png" usemap="#map1">
  <OBJECT data="barranav.gif" type="image/gif" usemap="#map1">
     <MAP name="map1">
     <P>Navegar por este sitio:
      <A href="guia.html" shape="rect" coords="0,0,118,28">Acceder a la Gu�a</a> |
      <A href="atajo.html" shape="rect" coords="118,0,184,28">Ir</A> |
      <A href="buscar.html" shape="circle" coords="184,200,60">Buscar</A> |
      <A href="top10.html" shape="poly"
         coords="276,0,276,28,100,200,50,50,276,0">Top Ten</A>
     </MAP>
  </OBJECT>
</OBJECT>

El siguiente ejemplo ilustra c�mo pueden especificarse elementos A para crear zonas inactivas dentro de un mapa de im�genes. El primer v�nculo especifica una peque�a regi�n circular sin v�nculo asociado. El segundo v�nculo especifica una regi�n circular m�s grande con el mismo centro. La combinaci�n de ambos define un anillo cuyo centro es inactivo y cuya corona es activa. El orden de las definiciones de los v�nculos es importante, ya que el c�rculo menor debe prevalecer sobre el c�rculo mayor.

<MAP name="map1">
<P>
<A shape="circle" coords="100,200,50">Yo soy inactivo.</A>
<A href="vinculo-circulo-externo.html" shape="circle"
   coords="100,200,250">Yo soy activo.</A>
</MAP>

An�logamente, el atributo nohref del elemento AREA declara que una regi�n geom�trica no tiene un v�nculo asociado.

13.6.2 Mapas de im�genes en el lado del servidor

Los mapas de im�genes en el lado del servidor puede ser interesantes en aquellos casos en que el mapa de im�genes sea demasiado complicado para un mapa de im�genes en el lado del cliente.

S�lo es posible definir un mapa de im�genes el lado del servidor para los elementos IMG e INPUT. En el caso de IMG, el IMG debe estar dentro de un elemento A y debe establecerse el atributo booleano ismap ([CI]). En el caso de INPUT, el INPUT debe ser del tipo "image".

Cuando el usuario activa el v�nculo haciendo clic sobre la imagen, las coordenadas de pantalla se env�an directamente al servidor donde se aloja el documento. Las coordenadas de pantalla se expresan como p�xeles de pantalla relativos a la imagen. Para informaci�n normativa sobre la definici�n de un p�xel y c�mo escalarlo, consulte [CSS1].

En el siguiente ejemplo, la regi�n activa define un v�nculo en el lado del servidor. As�, un clic en cualquier parte de la imagen har� que las coordenadas del clic sean enviadas al servidor.

<P><A href="http://www.acme.com/cgi-bin/competicion">
        <IMG src="juego.gif" ismap alt="diana"></A>

El lugar del clic se pasa al servidor como sigue. El agente de usuario crea un nuevo URI a partir del URI especificado por el atributo href del elemento A, a�adiendo un '?' seguido de las coordenadas x e y, separadas por una coma. A continuaci�n se sigue el v�nculo especificado por el nuevo URI. Por ejemplo, en el ejemplo dado, si el usuario hace clic en x=10, y=27, entonces el URI creado es "http://www.acme.com/cgi-bin/competicion?10,27".

Los agentes de usuario que no ofrezcan al usuario medios para especificar unas coordenadas espec�ficas (p.ej., agentes de usuario no gr�ficos que reciban la entrada por teclado, agentes de usuario por voz, etc.) deber�an enviar las coordenadas "0,0" al servidor cuando se activa el link.

13.7 Presentaci�n visual de im�genes, objetos y aplicaciones

Todos los atributos de los objetos IMG y OBJECT que guarden relaci�n con la alineaci�n y la presentaci�n han sido desaprobados en favor de las hojas de estilo.

13.7.1 Anchura y altura

Definiciones de atributos

width = longitud [CN]
Invalidar anchura de imagen u objeto.
height = longitud [CN]
Invalidar altura de imagen u objeto.

Si se especifican, los atributos width y height dicen a los agentes de usuario que invaliden el tama�o original de la imagen u objeto en favor de estos valores.

Cuando el objeto es una imagen, se escala. Los agentes de usuario deber�an hacer lo posible para escalar el objeto o imagen de modo que se respeten la anchura y altura especificadas por el autor. Obs�rvese que las longitudes expresadas como porcentajes se basan el espacio horizontal o vertical disponible actualmente, no en el tama�o original de la imagen, objeto o aplicaci�n.

Los atributos height y width dan a los agentes de usuario una idea del tama�o de una imagen u objeto para que puedan reservar espacio para ellos y continuar la representaci�n del documento mientras esperan a los datos de la imagen.

13.7.2 Espacio en blanco alrededor de im�genes y objetos

Definiciones de atributos

hspace = p�xeles [CN]
Desaprobado. Este atributo especifica la cantidad de espacio en blanco a insertar a la izquierda y a la derecha de un IMG, APPLET, u OBJECT. El valor por defecto no est� especificado, pero generalmente es una longitud peque�a distinta de cero.
vspace = p�xeles [CN]
Desaprobado. Este atributo especifica la cantidad de espacio en blanco a insertar encima y debajo de un IMG, APPLET, u OBJECT. El valor por defecto no est� especificado, pero generalmente es una longitud peque�a distinta de cero.

13.7.3 Bordes

Una imagen u objeto puede estar rodeada de un borde (p.ej., cuando se especifica un borde por el usuario o cuando la imagen es el contenido de un elemento A).

Definiciones de atributos

border = p�xeles [CN]
Desaprobado. Este atributo especifica la anchura del borde de un IMG u OBJECT, en p�xeles. El valor por defecto de este atributo depende del agente de usuario.

13.7.4 Alineaci�n

Definiciones de atributos

align = bottom|middle|top|left|right
Desaprobado. Este atributo especifica la posici�n de un IMG, OBJECT, o APPLET con respecto a su contexto.

Los siguientes valores de align se refieren a la posici�n del objeto con respecto al texto que le rodea:

Hay otros dos valores, left y right, que hacen que la imagen "flote" hacia el margen izquierdo o derecho actual. Se habla sobre ellos en la secci�n sobre objetos flotantes.

Diferentes interpretaciones de align. Los agentes de usuario pueden interpretar de manera diferente el atributo align. Algunos s�lo tienen en cuenta lo que haya ocurrido en la l�nea antes del elemento, algunos tienen en cuenta el texto que hay a ambos lados del elemento.

13.8 C�mo especificar texto alternativo

Definiciones de atributos

alt = texto [CS]
Este atributo especifica texto alternativo para agentes de usuario que no puedan mostrar im�genes, formularios o aplicaciones. El idioma de este texto alternativo est� especificado por el atributo lang.

Varios elementos no textuales (IMG, AREA, APPLET e INPUT) permiten a los autores especificar texto alternativo que sirva como contenido cuando el elemento no pueda ser representado normalmente. El especificar texto alternativo ayuda a los usuarios que no tengan terminales gr�ficas, a los usuarios cuyos navegadores no soporten formularios, a los usuarios con discapacidades visuales, a aquellos que utilicen sintetizadores de voz, a aquellos que hayan configurado sus agentes de usuario para no mostrar im�genes, etc.

El atributo alt debe especificarse para los elementos IMG y AREA. Es opcional para los elementos INPUT y APPLET.

Si bien el texto alternativo puede ser muy �til, hay que tratarlo con cuidado. Los autores deber�an seguir las siguientes pautas:

Los implementadores deber�an consultar la secci�n sobre accessibilidad para informaci�n sobre c�mo tratar los casos en que se omite el texto alternativo.